Tính năng, đặc điểm Ext4

Hệ thống file lớnHệ thống file ext4 hỗ trợ các phân vùng có kích thước lên tới 1 exbibyte (EiB) và các file đơn lẻ có kích thước tới 16 tebibytes (TiB) với block size 4 KiB tiêu chuẩn.[9] Giới hạn kích thước file, thư mục và kích thước hệ thống file tối đa tăng theo tỉ lệ với block size hệ thống file lên đến kích thước block 64 KiB tối đa có sẵn trên CPU ARM và PowerPC/Power ISA.ExtentsExtents thay thế sơ đồ ánh xạ block truyền thống được sử dụng bởi ext2 và ext3. Một extent là một chuỗi các blocks vật lý liền kề nhau, cải thiện hiệu suất với file lớn và giảm phân mảnh. Một extent đơn trong ext4 có thể ánh xạ tới 128 MiB không gian tiếp giáp với block size 4 KiB.[1] Có thể có bốn phạm vi được lưu trữ trực tiếp trong inode. Khi có nhiều hơn bốn phạm vi cho một file, phần còn lại của các phạm vi được lập chỉ mục trong một cây.[10]Tương thích ngượcext4 tương thích ngược với ext3 và ext2, làm cho nó có thể mount ext3 và ext2 giống như ext4.Điều này sẽ cải thiện hiệu suất một chút, bởi vì một số tính năng mới của việc triển khai ext4 cũng có thể được sử dụng với ext3 và ext2, chẳng hạn như thuật toán phân bổ block mới, mà không ảnh hưởng đến định dạng trên đĩa.ext3 tương thích một phần với ext4. Thực tế, ext4 sẽ không mount như một hệ thống file ext3, trừ khi một số tính năng mới bị vô hiệu hóa khi tạo nó, chẳng hạn như ^extent, ^flex_bg, ^huge_file, ^uninit_bg, ^dir_nlink, và ^extra_isize.[11]Phân bổ trước liên tụcext4 có thể phân bổ trước dung lượng trên đĩa cho một file. Để làm điều này trên hầu hết các hệ thống file, các số 0 sẽ được ghi vào file khi được tạo. ITrong ext4 (và một số hệ thống file khác ví dụ như XFS) fallocate(), một lời gọi hệ thống mới trong nhân Linux, có thể được dùng. Không gian được phân bổ sẽ được đảm bảo và có khả năng tiếp giáp nhau. Tình huống này có các ứng dụng cho truyền phát trực tuyến và cơ sở dữ liệu.Phân bổ trễext4 sử dụng một kỹ thuật hiệu suất được gọi là allocate-on-flush, còn được gọi là phân bổ trễ Đó là, ext4 trì hoãn phân bổ block cho đến khi dữ liệu được ghi vào đĩa. Ngược lại, một số hệ thống file phân bổ các block ngay lập tức, ngay khi dữ liệu được đưa vào cache. Phân bổ trễ sẽ cải thiện hiệu suất và giảm phân mảnh bằng cách phân bổ hiệu quả lượng dữ liệu lớn hơn tại một thời điểm.Không giới hạn số lượng thu mục conExt4 không giới hạn số lượng thư mục con trong một thư mục, ngoại trừ bởi giới hạn kích thước vốn có của chính thư mục đó (trong ext3 một thư mục có tối đa 32000 thư mục con).[12] Để cho phép các thư mục lớn hơn và tiếp tục hoạt động, ext4 trong Linux 2.6.23 trở lên, kích hoạt mảng HTree (một phiên bản đặc biệt của B-tree) theo mặc định, cho phép các thư mục được lưu trữ trong khoảng 10-12 triệu mục trong mục lục 2-level HTree và và giới hạn kích thước thư mục 2GB cho kích thước block 4 KiB, tùy thuộc vào độ dài tên file. Trong Linux 4.12 trở lên tính năng largedir kích hoạt một 3-level HTree và kích cỡ thư mục trên 2GB, cho phép khoảng 6 tỷ mục trong một thư mục.Kiểm tra nhật kýext4 dùng checksums trong nhật ký để cải thiện độ tin cậy, vì nhật ký là một trong những file được sử dụng nhiều nhất của đĩa. Tính năng này có một lợi ích phụ: nó có thể tránh sự chờ đợi I/O của đĩa trong quá trình ghi nhật ký, cải thiện hiệu suất một chút. Kiểm tra nhật ký được lấy cảm hứng từ một bài báo nghiên cứu từ University of Wisconsin, có tên là IRON File Systems[13] (cụ thể, phần 6, được gọi là "kiểm tra giao dịch"), với các sửa đổi trong việc thực hiện các giao dịch hỗn hợp được thực hiện bởi hệ thống file IRON (ban đầu được đề xuất bởi Sam Naghreezeh trong hội nghị thượng đỉnh RedHat).Kiểm tra siêu dữ liệuTừ Linux kernel 3.16.Faster file system checkingTrong ext4 các nhóm block và các phần của bảng chưa được phân bổ được đánh dấu. Việc này cho phép e2fsck bỏ qua chúng hoàn toàn và giảm đáng kể thời gian kiểm tra hệ thống file. Linux 2.6.24 triển khai tính năng này. Phụ thuộc thời gian fsck vào số lượng inode (ext3 so với ext4)Phân bổ đa blockKhi ext3 nối vào một file, nó gọi bộ cấp phát block, một lần cho mỗi block. Do đó, nếu có nhiều trình ghi đồng thời, các file có thể dễ dàng bị phân mảnh trên đĩa. Tuy nhiên, ext4 sử dụng phân bổ trễ cho phép nó lưu đệm dữ liệu và phân bổ các nhóm block. Do đó, bộ cấp phát đa block có thể đưa ra các lựa chọn tốt hơn về việc phân bổ các file liên tục trên đĩa. Bộ cấp phát đa block cũng có thể được sử dụng khi các file được mở ở chế độ O_DIRECT. Tính năng này không ảnh hưởng đến định dạng đĩa.Cải thiện dấu thời gianKhi máy tính trở nên nhanh hơn nói chung và khi Linux trở nên được sử dụng nhiều hơn cho các ứng dụng quan trọng, thì độ chi tiết của dấu thời gian dựa trên giây trở nên không đủ. Để giải quyết điều này, ext4 cung cấp dấu thời gian được đo bằng nano giây. Ngoài ra, 2 bit của trường dấu thời gian mở rộng được thêm vào các bit quan trọng nhất của trường giây của dấu thời gian để trì hoãn sự cố năm 2038 cho bổ sung 408 năm.ext4 cũng bổ sung hỗ trợ cho dấu thời gian tạo giờ. Nhưng, như Theodore Ts'o chỉ ra, trong khi thật dễ dàng để thêm một trường ngày tạo thêm vào trong inode (như vậy, về mặt kỹ thuật cho phép hỗ trợ cho các dấu thời gian trong ext4), nó là khó khăn hơn để sửa đổi hoặc bổ sung cần thiết lời gọi hệ thống, như stat() (có thể sẽ yêu cầu một phiên bản mới) và các thư viện khác nhau phụ thuộc vào chúng (như glibc). Những thay đổi này sẽ yêu cầu sự phối hợp của nhiều dự án.[14] Do đó, ngày tạo được lưu trữ bởi ext4 hiện chỉ khả dụng cho các chương trình người dùng trên Linux thông qua API statx().[15]Mã hóa trong suốtHỗ trợ mã hóa trong suốt đã được thêm vào Linux kernel 4.1 vào tháng 6 năm 2015.[16]

Liên quan

Tài liệu tham khảo

WikiPedia: Ext4 http://www.ext2fsd.com/ http://www.h-online.com/open/features/Kernel-Log-H... http://www.h-online.com/open/news/item/Android-2-3... http://www.ibm.com/developerworks/linux/library/l-... http://www.paragon-software.com/home/extfs-mac/ http://www.paragon-software.com/home/extfs-windows... http://www.soluvas.com/read-browse-explore-open-ex... http://www.ubuntugeek.com/how-to-read-ext3ext4-lin... http://www.cs.wisc.edu/wind/Publications/iron-sosp... http://ext2read.sourceforge.net/